// axios的过滤器   axios中文文档 -- 配置默认值(可以指定将被用在各个请求的配置默认值) -- 全局的 axios 默认值
axios.defaults.baseURL = 'http://api-breakingnews-web.itheima.net'



// 添加请求拦截器    axios中文文档 -- 拦截器

// use 方法里面可以传递两个函数 第一个函数是 : 在发送请求之前做些什么
//                            第二个函数是 : 对请求错误做些什么
axios.interceptors.request.use(function (config) {
    // console.log(config);
    // 判断路径中,是否包含 /api 或者 /my
    // 或者 >=0   !== -1   > -1 都说明查到了
    // indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置  若没有此字符串则返回 -1
    if (config.url.indexOf('/my') !== -1) {
        // 这样赋值,不会影响原来的头信息设置
        // 所有头信息的设置,不要使用对象赋值,要使用  .属性 不会出现覆盖
        // 如果包含 /my 则修改:
        config.headers.Authorization = localStorage.getItem('token')
    }
    // 修改完毕config必须返回
    return config
}, function (error) {
    // 返回一个带有拒绝原因的Promise对象
    return Promise.reject(error)
})

// 响应拦截器
// use 方法里面可以传递两个函数 第一个函数是 : 对响应数据做点什么
//                            第二个函数是 : 对响应错误做点什么
axios.interceptors.response.use(function (response) {
    // 输出响应结果
    // console.log(response);
    if (response.data.message === "身份认证失败！") {
        // 跳转到登录页面,销毁token
        location.href = '/login.html'
        localStorage.removeItem('token')
    }
    // 返回 response  !!!必须
    return response
}, function (error) {
    return Promise.reject(error)
})